#ifndef __LIST_H__
#define __LIST_H__

#define my_scanf(op, format, ...) do{   \
    int ret = 0;                        \
    ret = scanf(format, __VA_ARGS__);   \
    while ('\n' != getchar())           \
        /*do nothing*/;                 \
    if (ret < 0)                        \
        goto op;                        \
} while (0)                             \



typedef struct _node_t
{
    // 数据域
    int num;

    // 指针域
    struct _node_t *next;
}node_t; 

node_t *list_create(void);                  // 链表头节点创建
int list_append(node_t *head, int num);     // 链表尾部插入
int list_traverse(node_t *head);            // 链表的遍历
int list_destroy(node_t *head);             // 链表的销毁
int list_prepend(node_t *head, int num);    // 链表头部插入
int list_insert_by_index(node_t *head, int num, int index); // 指向插入
int list_reverse(node_t *head);             // 链表的反转




#endif/*__LIST_H__*/